/*
 * Lista.h
 *
 *  Created on: Sep 12, 2011
 *      Author: marcos
 */

#ifndef LISTA_H_
#define LISTA_H_

#include <iostream>
using std::string;

#include "Eleccion.h"
#include "../util/List.h"


class Lista {
private:
	int id;
	int numeroLista;
	string nombre;
	Eleccion* eleccion;
	List *candidatos;

public:
	Lista();
	virtual ~Lista();
    Eleccion *getEleccion() const;
    string getNombre() const;
    int getNumeroLista() const;
    void setEleccion(Eleccion *eleccion);
    void setNombre(string nombre);
    void setNumeroLista(int numeroLista);
    List *getCandidatos() const;
    int getId() const;
    void setCandidatos(List *candidatos);
    void setId(int id);
    static Lista* create(int id, int numeroLista, string nombre, Eleccion* eleccion, List* candidatos);

    static Lista* create(int id);

    //Serialize and Unserialize methods
	static Lista* toObject(iostream *stream);
	void toData(iostream*);
};

#endif /* LISTA_H_ */
